#coding=utf-8
import time  
from selenium import webdriver  
import re

#由于在start.py程序里统一打开了浏览器，所以这里不再单独的程序里打开而是作为变量传入方法里。
#driver = webdriver.Chrome(r'F:\Python\Economic\chromedriver_win32\chromedriver.exe')  #打开浏览器

def batch_check_interest_rate(driver):
        
    elem = driver.get('http://data.eastmoney.com/cjsj/globalRateTrend.aspx')  #打开网址
    information = "" #把结果要保存的变量先初始化好

    def get_info():   #定义主要方法： 复制利率到information变量，并同时打印出来
        nonlocal information #调用父方法的变量
        status = driver.page_source #把全网页源代码文本保存在status变量里
        rate = status[status.find('CPI (%)'):(status[status.find('/tr')+3:].find('/tr')+status.find('/tr'))] #找到第二个/tr后的内容，就是说提取前两行信息的意思
        filtered_service_log = re.findall("<td>(.*?)<\/td>",rate) #把coding中间的部分去掉，只留下人类可读部分
        #print('The latest rate is: \n')
        for log in filtered_service_log:
            #print(log)
            information = information + log + ' '
        #print('\n')  #前后空好行

    def change_elements_by_click_it(element):
        driver.find_element_by_xpath(".//*[@"+element+"]").click()  #找到对应的元素并且点击
        #print('for '+element.replace("class='c_","").replace("'","").upper()+':\n')
        nonlocal information
        information += str('\nfor '+element.replace("class='c_","").replace("'","").upper()+':\n')
        time.sleep(3)
        get_info()

    # 正式开始执行查询近期rate任务
    information = information + 'for US:\n'
    
    get_info()
    time.sleep(2)
    change_elements_by_click_it("class='c_eu'")
    time.sleep(2)
    change_elements_by_click_it("class='c_uk'")
    time.sleep(2)
    change_elements_by_click_it("class='c_canada'")
    time.sleep(2)
    change_elements_by_click_it("class='c_australia'")

    div=driver.find_element_by_xpath('//div[@class="tit"]')
    js4 = "arguments[0].scrollIntoView();"
    driver.execute_script(js4, div)

    print(information)  #根据需要打印出利率详情统计。

    #driver.quit()

#batch_check_interest_rate(driver)

